package cn.ldf.keepaccounts.entity.pojo;

import cn.hutool.core.codec.Base64Encoder;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.validation.constraints.NotBlank;
import lombok.*;

import java.beans.Transient;

/**
 * 用户表(Users)表实体类
 *
 * @author 清峰
 * @since 2025-02-17 10:16:42
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class Users extends BaseEntity {
    /**
     * 用户openId
     */
    @NotBlank(message = "用户openId不能为空")
    private String openId;
    /**
     * 开放平台唯一标识符
     */
    private String unionId;
    /**
     * 用户昵称
     */
    @NotBlank(message = "用户昵称不能为空")
    private String nickname;
    /**
     * 头像
     */
    @JsonIgnore // 查询但不返回此字段
    private byte[] avatar;
    /**
     * 头像base64
     */
    @TableField(select = false,exist = false) // select:是否应该包含在查询语句中 exist:是否存在于数据库表中
    private String avatarBase64;
    /**
     * 文件类型
     */
    private String contentType;
    /**
     * 用户总积分
     */
    private Double score;
    /**
     * 用户获胜场次
     */
    private Integer winningCount;
    /**
     * 用户总场次
     */
    private Integer gamesCount;
    /**
     * 用户胜率
     */
    private Double winningRate;

    /**
     * 将头像转为base64返回
     * @return 结果集
     */
    public String getAvatarBase64() {
        if (avatar != null){
            avatarBase64 = Base64Encoder.encode(avatar);
        }
        return avatarBase64;
    }

}

